/*
 * @(#)OOMObject.java 2017年11月12日下午12:31:57
 * Copyright 2013 sinovatech, Inc. All rights reserved.
 */
package com.lpf.testJVM;

import java.util.ArrayList;
import java.util.List;

/**
 * 
 * <ul>
 * <li>
 * <b>修改历史：</b><br/>
 * <p>
 * [2017年11月12日下午12:31:57]liupeifeng<br/>
 * </p>
 * </li>
 * </ul>
 */

public class TestJConsole {
	
	/**
	 * 内存占位符对象，一个OOMObject大约占64KB
	 */
	static class OOMObject {
		public byte[] placehoder = new byte[64 * 1024];
	}
	
	public static void fillHeap(int num) throws InterruptedException {
		List<OOMObject> list = new ArrayList<OOMObject>();
		for (int i = 0; i < num; i++) {
			// 稍作延时，令监事曲线的变化更加明显
			Thread.sleep(50);
			list.add(new OOMObject());
		}
	}

	/**
	 * @author liupeifeng
	 * @creationDate. 2017年11月12日 下午12:31:57 
	 * @param args
	 * @throws InterruptedException 
	 * 
	 * VM 参数： -Xms100M -Xmx100M -XX:+UseSerialGC
	 */

	public static void main(String[] args) throws InterruptedException {
		fillHeap(3000);
		System.gc();
	}
}
